package main

import (
	"fmt"
	"strconv"
)

func main() {
	nums := []int{1, 2, 3, 4, 5, 6, 9, 10, 1, 2, 3, 8, 221, 222, 223, 11, 12, 6}
	result := []string{}

	// 初始化连续序列的起始数字和结束数字
	start := nums[0]
	end := nums[0]
	// 遍历数组
	for i := 1; i < len(nums); i++ {
		// 如果当前数字和前一个数字连续，更新结束数字
		if nums[i] == nums[i-1]+1 {
			end = nums[i]
		} else {
			// 如果起始数字和结束数字相同，表示只有一个数字，直接添加到结果数组中
			if start == end {
				result = append(result, strconv.Itoa(start))
			} else {
				// 否则将连续序列的首尾添加到结果数组中
				result = append(result, strconv.Itoa(start), strconv.Itoa(end))
			}
			// 更新连续序列的起始数字和结束数字为当前数字
			start = nums[i]
			end = nums[i]
		}
	}

	// 处理最后一个连续序列
	if start == end {
		result = append(result, strconv.Itoa(start))
	} else {
		result = append(result, strconv.Itoa(start), strconv.Itoa(end))
	}

	fmt.Println(result)
}
